#ifndef DISTANCE_H
#define DISTANCE_H

#include <opencv2/opencv.hpp>

class Distance
{
public:
	virtual ~Distance() = default;
	void setCameraParameter(const cv::Mat& cameraMatrix, const cv::Mat& distCoeffs,
		const double squareLength, const double scale);

	virtual void getObjectPoints(std::vector<cv::Point3f>& objectPoints);


	virtual void getImagePoints(const cv::Mat& image, std::vector<cv::Point2f>& imagePoints) = 0;

	virtual double calculate(const cv::Mat& image);

private:
	cv::Mat cameraMatrix;
	cv::Mat distCoeffs;
	float squareLength;
	float scale;
};

#endif


